﻿/*
 * Copyright (C) 2013 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

using UnityEngine;
using System.Collections;

public class MissileController : MonoBehaviour {
    public GameObject ExplosionPrefab;

    public Vector3 Velocity;
    public const float DistToExplode = 1700.0f;
    public const float ExplosionRadius = 100.0f;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        if (gameObject.transform.position.magnitude >= DistToExplode) {
            Explode();
        }
        else {
            gameObject.transform.Translate(Velocity * Time.deltaTime, Space.World);
        }
    }

    void Explode() {
        // explosion effect
        GameObject.Instantiate(ExplosionPrefab, gameObject.transform.position, Quaternion.identity);

        // find out what enemies were hit
        foreach (Collider collider in Physics.OverlapSphere(gameObject.transform.position, ExplosionRadius)) {
            EnemyController c = collider.gameObject.GetComponent<EnemyController>();
            if (c != null) c.TakeExplosionDamage();
        }

        // that's the end for us
        Destroy(gameObject);
    }
}
